package android.slc.hutool.compat.core.util;

import android.os.Build;
import android.slc.hutool.compat.core.lang.ObjectIdCompat;

import androidx.annotation.RequiresApi;

import cn.hutool.core.util.IdUtil;

public class IdCompatUtil extends IdUtil {

    /**
     * 创建MongoDB ID生成策略实现<br>
     * ObjectId由以下几部分组成：
     *
     * <pre>
     * 1. Time 时间戳。
     * 2. Machine 所在主机的唯一标识符，一般是机器主机名的散列值。
     * 3. PID 进程ID。确保同一机器中不冲突
     * 4. INC 自增计数器。确保同一秒内产生objectId的唯一性。
     * </pre>
     * <p>
     * 参考：http://blog.csdn.net/qxc1281/article/details/54021882
     *
     * @return ObjectId
     */
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public static String objectId() {
        return ObjectIdCompat.next();
    }
}
